package com.jy.wms.service;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.jy.wms.common.annotions.BaseServiceDescribe;
import com.jy.wms.common.base.BaseService;
import com.jy.wms.common.base.ServiceException;
import com.jy.wms.dao.WmsCustomDictionaryMapper;
import com.jy.wms.pojo.WmsCustomDictionary;
import org.springframework.stereotype.Service;

import java.util.List;

/**
* @ClassName: WmsCustomDictionaryService.java
* @Description: TODO(这里用一句话描述这个类的作用)
* @Author Jane
* @Date Tue Dec 26 13:58:33 CST 2017
*/

@Service
public class WmsCustomDictionaryService extends BaseService<WmsCustomDictionaryMapper,WmsCustomDictionary> {

 /**
 * 插入一条记录_Jane
 * @param entity 实体对象
 * @return int
 */
 @BaseServiceDescribe(moduleName = "新增自定义状态信息",btnName = "新增自定义状态信息")
public void baseInsert(WmsCustomDictionary entity, String sshzid, String ckid)throws ServiceException {
     entity.setCkid(ckid);
     entity.setSshzid(sshzid);
     Integer mc=dao.countValueBySshzid(entity);
     if(mc==0){
         if(entity.getZcolumn().equals("ckzd1")||entity.getZcolumn().equals("ckzd2")||entity.getZcolumn().equals("ckzd6")||entity.getZcolumn().equals("ckzd7")){
            throw new ServiceException("此列不能定义为状态字段，请换一列操作");
         }else {
             Integer maxStatus=dao.maxValueBySShzid(sshzid,ckid,entity.getZcolumn());
             entity.setZstatus(String.valueOf(maxStatus+1));
             Integer count=dao.baseInsert( entity );
             if(count<=0){
                 throw new ServiceException("新增自定义状态信息失败");
             }
         }
     }else{
         throw new ServiceException("自定义状态名称重复，请换一个名称");
     }

}

/**
* 插入一条记录（匹配有值的字段）
* @param entity 实体对象
* @return int
*/
public Integer baseInsertSelective(WmsCustomDictionary entity){
     return dao.baseInsertSelective( entity);
}

/**
* 删除（根据主键ID删除）
* @param id 主键
* @return int
*/
public Integer baseDeleteByPrimaryKey(String id){
     return dao.baseDeleteByPrimaryKey( id);
}

/**
* 删除（根据ID 批量删除）
* @param idList 主键ID列表
* @return int
*/
public Integer baseDeleteBathPrimaryKeys(List<String> idList){
     return dao.baseDeleteBathPrimaryKeys( idList );
}

/**
* 分页查询
* @param entity 实体
* @return Page<WmsCustomDictionary>
*/
public Page<WmsCustomDictionary> baseSelectPage(WmsCustomDictionary entity ){
    PageHelper.startPage(entity.getPage(),entity.getRows());
    return (Page<WmsCustomDictionary>)dao.baseSelectPage( entity );
}

/**
* 查询当前货主下的单个列的状态
* @param sshzid 所属货主Id
* @param ckid  所属仓库Id
* @param zcolumn  列名
* @return WmsCustomDictionary
*/
public List<WmsCustomDictionary> baseSelectByPrimaryKey(String sshzid, String ckid, String zcolumn){
    WmsCustomDictionary dictionary=new WmsCustomDictionary();
    dictionary.setCkid(ckid);
    dictionary.setSshzid(sshzid);
    dictionary.setZcolumn(zcolumn);
     return dao.baseSelectByPrimaryKey(dictionary);
}

/**
* 查询（根据ID 批量查询）
* @param idList 主键ID列表
* @return list
*/
public Integer baseSelectBathPrimaryKeys(List<WmsCustomDictionary> idList ){
     return dao.baseSelectBathPrimaryKeys( idList );
}

/**
*修改 （匹配有值的字段）_Jane
* @param entity 主键ID列表
* @return int
*/
@BaseServiceDescribe(moduleName = "修改自定义状态信息",btnName = "修改自定义状态信息")
public void baseUpdateByPrimaryKeySelective( WmsCustomDictionary entity)throws ServiceException {
    Integer count=dao.countValueBySshzid(entity);
    if(count==0){
        Integer c=dao.baseUpdateByPrimaryKeySelective( entity);
        if(c<=0){
            throw new ServiceException("修改自定义状态信息失败");
        }
    }else{
        throw new ServiceException("自定义状态名称重复，请换一个名称");
    }
}

/**
*修改（根据主键ID修改）
* @param entity 主键ID列表
* @return int
*/
public Integer baseUpdateByPrimaryKey(WmsCustomDictionary entity){
     return dao.baseUpdateByPrimaryKey( entity);
}
}
